Data processing systems or subsystems typically include numerous software components managing different aspects of the operation of the system. For example, components in a storage controller subsystem may include an operating system, device drivers, device adapters, host adapters and cache management, to name just a few. During normal operations, each component maintains a continuous log of state data. When the system encounters a significant problem, such as an event requiring a warmstart, the state data can be offloaded to a central buffer and subsequently saved to a non-volatile memory for later analysis and debugging. As illustrated in FIG. 1, in a conventional offload process, the components are called sequentially to save and offload their state data. FIG. 1 assumes that component A requires 350 milliseconds (ms) to perform a statesave operation and component B requires 620 ms. When the offload process is performed in the conventional manner, a total of 970 ms are required. With many components and much state data to offload from each, it will be appreciated that the actual process may be time consuming, thereby delaying the system recovery.
Many types of systems or subsystems include units with multiple processors which are used to execute various functions during the normal operation of the unit. However, the conventional offload process summarized above is conducted by only a single processor, leaving the other processors idle.